<template>
	<view class="c-cell-group" :class="[
		border_ ? 'c-cell-group--border' : ''
	]" :style="[ groupStyle_ ]">
		<view class="c-cell-group__title" v-if="title || $slots.title" :style="[ titleStyle ]">
			{{title}}
			<slot v-if="$slots.title" name="title" />
		</view>
		<view class="c-cell-group__content">
			<slot />
		</view>
	</view>
</template>

<script>
	/**
	 * c-cell-group 单元格父组件Group
	 * @description c-cell-group单元格一般用于一组列表的情况，比如个人中心页，设置页等。搭配c-cell
	 * @property {String} title 分组标题
	 * @property {Boolean} border 是否显示外边框（默认true）
	 * @property {Object} title-style 分组标题的的样式，对象形式，如{'font-size': '24rpx'} 或 {'fontSize': '24rpx'}
	 * @example <c-cell-group title="设置喜好">
	 */
	export default {
		name: "c-cell-group",
		props: {
			// 分组标题
			title: {
				type: String,
				default: ''
			},
			// 是否显示外边框
			border: {
				type: [ Boolean, String ],
				default: false
			},
			borderColor: {
				type: String,
				default: '#999'
			},
			radius: {
				type: [ Number, String ],
				default: 0
			},
			// 分组标题的样式，对象形式，注意驼峰属性写法
			// 类似 {'font-size': '24rpx'} 和 {'fontSize': '24rpx'}
			titleStyle: {
				type: Object,
				default () {
					return {};
				}
			},
            // 分组样式，对象形式，注意驼峰属性写法
			// 类似 {'font-size': '24rpx'} 和 {'fontSize': '24rpx'}
            groupStyle: {
				type: Object,
				default () {
					return {};
				}
			}
		},
        computed: {
            border_() {
                return String(this.border) === 'false' ? false : true;
            },
			groupStyle_() {
				return {
					radius: this.$c.formatUnit(this.radius),
					borderColor: this.borderColor,
					...this.groupStyle
				}
			}
        }
	}
</script>

<style lang="scss" scoped>
	.c-cell-group {
		width: 100%;
        overflow: hidden;
		&--border{
			border: 1px solid #ffff;
		}
        &__title {
            padding: 30rpx 32rpx 10rpx 32rpx;
            font-size: 30rpx;
            color: #909399;
        }
        &__content {
            background-color: #FFFFFF;
			@include flex(column);
        }
	}
</style>
